#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
void solve(int arr[1000],int sz)
{
	int i = 0;
	int j = 0;
	int flag = 0;
	for (j = 0; j < sz; j++)
	{
		flag = 0;
		for (i = 0; i < sz - 1; i++)
		{
			if (arr[i] < arr[i + 1])
			{
				arr[i] = arr[i] ^ arr[i + 1];
				arr[i + 1] = arr[i] ^ arr[i + 1];
				arr[i] = arr[i] ^ arr[i + 1];
				flag = 1;
			}
		}
		if (flag == 0)
			return;
	}
}
int main()
{
	int arr[1000] = {0};
	int num = 0;
	scanf("%d", &num);
	int i = 0;
	for (i = 0; i < num; i++)
		scanf("%d", &arr[i]);
	solve(arr, num);
	if (num <= 5)
		for (i = 0; i < num; i++)
			printf("%d ", arr[i]);
	else
		for (i = 0; i < 5; i++)
			printf("%d", arr[i]);
	return 0;
}
//int solve(int arr[5])
//{
//	int i = 0;
//	for (i == 0; i < 5; i++)
//		if (arr[i] == 0)
//			return i;
//	return 4;
//}
//int main()
//{
//	int max[5] = { 0 };
//	int flag[5] = { 0 };
//	int arr[1000] = { 0 };
//	int i = 0;
//	int j = 0;
//	scanf("%d", &i);
//	for (j = 0; j < i; j++)
//		scanf("%d ", &arr[j]);
//	int k = 0;
//	int k1 = 0;
//	for (j = 0; j < i; j++)
//	{
//		if (arr[j] > max[0])
//		{
//			k = solve(flag);
//			for (k1 = 0; k1 < k; k1++)
//			{
//				max[k1 + 1] = max[k1];
//				flag[k1 + 1] = 1;
//			}
//			max[0] = arr[j];
//			flag[0] = 1;
//		}
//		else
//		{
//			if (arr[j] > max[1])
//			{
//				k = solve(flag);
//				for (k1 = 1; k1 < k; k1++)
//				{
//					max[k1 + 1] = max[k1];
//					flag[k1 + 1] = 1;
//				}
//				max[1] = arr[j];
//				flag[1] = 1;
//			}
//			else
//			{
//				if (arr[j] > max[2])
//				{
//					k = solve(flag);
//					for (k1 = 2; k1 < k; k1++)
//					{
//						max[k1 + 1] = max[k1];
//						flag[k1 + 1] = 1;
//					}
//					max[2] = arr[j];
//					flag[2] = 1;
//				}
//				else
//				{
//					if (arr[j] > max[3])
//					{
//						k = solve(flag);
//						for (k1 = 3; k1 < k; k1++)
//						{
//							max[k1 + 1] = max[k1];
//							flag[k1 + 1] = 1;
//						}
//						max[3] = arr[j];
//						flag[3] = 1;
//					}
//					else
//					{
//						if (arr[j] > max[4])
//						{
//							k = solve(flag);
//							for (k1 = 4; k1 < k; k1++)
//							{
//								max[k1 + 1] = max[k1];
//								flag[k1 + 1] = 1;
//							}
//							max[4] = arr[j];
//							flag[4] = 1;
//						}
//					}
//				}
//			}
//		}
//	}
//	if (flag[0] == 1)
//	{
//		printf("%d ", max[0]);
//		if (flag[1] == 1)
//		{
//			printf("%d ", max[1]);
//			if (flag[2] == 1)
//			{
//				printf("%d ", max[2]);
//				if (flag[3] == 1)
//				{
//					printf("%d ", max[3]);
//					if (flag[4] == 1)
//						printf("%d ", max[4]);
//				}
//			}
//		}
//	}
//	return 0;
//}
//int get_num(int n)
//{
//	if (n < 10)
//		return 1;
//	return 1 + get_num(n / 10);
//}
//int solve(int n)
//{
//	int num = get_num(n);
//	int i = 1;
//	int tmp1 = 0;
//	int tmp2 = 0;
//	int sum = 0;
//	for (i = 1; i < num; i++)
//	{
//		tmp1 = n / (int)pow(10, i);
//		tmp2 = n % (int)pow(10, i);
//		sum += tmp1 * tmp2;
//	}
//	if (sum == n)
//		return 1;
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	for (i = 10000; i < 100000; i++)
//	{
//		if (solve(i) == 1)
//			printf("%d ", i);
//	}
//	return 0;
//}
//int main()
//{
//	float a = 0;
//	int month = 0;
//	int day = 0;
//	int flag = 0;
//	scanf("%f %d %d %d", &a, &month, &day, &flag);
//	double total = 0;
//	if (month == 11)
//		total = a * 0.7 - 50 * flag;
//	else
//		total = a * 0.8 - 50 * flag;
//	if (total <= 0)
//		printf("0.00");
//	else
//		printf("%.2f", total);
//	return 0;
//}
//int main()
//{
//	float a = 0;
//	float b = 0;
//	scanf("%f %f", &a, &b);
//	if (18.5 <= a / pow(b, 2) && a / pow(b, 2) <= 23.9)
//		printf("Normal");
//	else
//		printf("Abnormal");
//	return 0;
//}

//int main()
//{
//	char a = 0;
//	scanf("%c", &a);
//	if ((65 <= a && a <= 90)||(97<=a&&a<=122))
//		printf("YES");
//	else
//		printf("NO");
//	return 0;
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%x %o", &a, &b);
//	printf("%d", a+b);
//	return 0;
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//	int i = 0;
//	scanf("%d %d %d", &a, &b, &c);
//	if (c % b == 0)
//		i = 0;
//	else
//		i = 1;
//	printf("%d", a - (c / b) - i);
//	return 0;
//}
//int main()
//{
//	char a = 0;
//	while (scanf("%c", &a) != EOF)
//	{
//		getchar();
//		printf("%c\n", a + 32);
//	}
//	return 0;
//}
//int main()
//{
//	float r = 0;
//	scanf("%f", &r);
//	double pi = 3.1415926535;
//	printf("%.3f", (4 / 3.0) * pi * pow(r, 3));
//	return 0;
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//	scanf("%d %d %d", &a, &b, &c);
//	float p = (a + b + c) / 2.0;
//	printf("circumference=%.2f area=%.2f", p * 2, sqrt(p * (p - a) * (p - b) * (p - c)));
//	return 0;
//}